package cn.edu.sdjzu.xg.eagle.util;

/**
 * @author tg.si@188.com
 * @todo
 * @since 2025/3/26 13:50
 */

import lombok.*;

import java.util.List;

@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Pagination {
    // 返回 LIMIT 子句
    public String toLimitClause(int totalNum) {
        // 向前端提供元组总数（totalNum 可以为 0）
        // this.totalNum = totalNum;
        // 偏移量
        int offset = (this.pageNo - 1) * this.pageSize;
        // 输出 LIMIT 子句，注意关键字两端的空格
        return " LIMIT " + offset + ", " + this.pageSize;
    }

    public Pagination(int pageSize, int pageNo) {
        // 防止错误赋值
        if(pageSize > 0) {
            this.pageSize = pageSize;
        }
        if(pageNo > 0) {
            this.pageNo = pageNo;
        }
    }
    // Setter for conditionList
    @Setter
    private List<Condition> conditionList;

    // Getter for conditionList
    public List<Condition> getConditionList() {
        return conditionList;
    }

    // 如果没有 get 方法，Fastjson 将无法读取对象属性
    public int getPageSize() {
        return pageSize;
    }

    public int getPageNo() {
        return pageNo;
    }

    public int getTotalNum() {
        return totalNum;
    }

    // 每页的对象(元组)数
    private int pageSize = 5;
    // 页码
    private int pageNo = 1;
    // 对象(元组)总数
    private int totalNum = -1;


}
